package com.tonyodev.fetch2core;

/**
 * Used to create custom loggers for Fetch.
 *
 * @since 2021-06-10
 */
public interface Logger {
    /**
     * Enable or disable logging.
     *
     * @return boolean
     */
    boolean getEnabled();

    /**
     * Set Enable or disable logging.
     *
     * @param enabled boolean
     */
    void setEnabled(boolean enabled);

    /**
     * Log debug information.
     *
     * @param message message
     */
    void d(String message);

    /**
     * Log debug information with throwable.
     *
     * @param message message
     * @param throwable throwable
     */
    void d(String message, Throwable throwable);

    /**
     * Log error information.
     *
     * @param message message
     */
    void e(String message);

    /**
     * Log error information with throwable.
     *
     * @param message message
     * @param throwable throwable
     */
    void e(String message, Throwable throwable);
}